package com.parking.mgr.common.util;

import cn.hutool.crypto.SecureUtil;
import org.apache.commons.lang3.StringUtils;

/**
 * @ClassName MD5Util
 * @Description MD5工具类，加盐
 * @Auther: zhijianpu
 * @Date: 2023/5/25
 */
public class MD5Util {

    /**
     * 密码 加密
     *
     * @param password 密码
     * @param salt     干扰码
     * @return
     */
    public static String password(String password, String salt) {
        //String hex = DigestUtil.md5Hex(salt + password + salt);
        //return SecureUtil.hmacMd5(password + salt).digestHex(hex);
        return SecureUtil.hmacMd5(password + salt).digestHex(salt);
    }


    /**
     * 密码比较
     *
     * @param password   密码
     * @param salt       干扰码
     * @param dbPassword 数据库密码
     * @return
     */
    public static boolean equals(String password, String salt, String dbPassword) {
        return StringUtils.equals(password(password, salt), dbPassword);
    }

    /**
     * 密码比较
     *
     * @param password   密码
     * @param salt       干扰码
     * @param dbPassword 数据库密码
     * @return
     */
    public static boolean compare(String password, String salt, String dbPassword) {
        return StringUtils.equals(password(password, salt), dbPassword);
    }


    /**
     * md5
     *
     * @param str
     * @return
     */
    public static String md5(String str) {
        return SecureUtil.md5(str);
    }

    public static void main(String[] args) {
        String salt = IdUtils.getSimpleId();
        System.out.println("盐: " + salt);
        System.out.println("加盐后的密码： " + password("123456", salt));

        System.out.println(equals("123456", salt, password("1256", salt)));

    }
}
